Data storage and transmission over noisy channels necessitate the use of error-correcting codes (ECCs) to improve or guarantee data reliability. Product codes are an example of an ECC scheme constructed using constituent codes of smaller length compared to the code length and encoding data in multiple dimensions after data interleaving. Each bit of a product codeword is part of multiple constituent codewords. Product codes may be decoded using an iterative decoder such that, in every iteration, each constituent codeword decoding is performed at least once. These iterations are repeated till all constituent codewords have been decoded successfully, or the maximum number of iterations is reached. In the former case, the product codeword is decoded successfully and in the latter case, the product codeword decoding fails.
When the initial received codeword contains a moderate number of errors, only a few constituent codewords may be decoded successfully in each iteration. As a result, the decoding of a product codeword may involve many constituent codeword decoding attempts, and therefore take a large amount of time. This can restrict the use of product codes in applications which are latency sensitive with respect to decoding.